# -*- coding: utf-8 -*-
import pandas as pd
import os

pd.set_option('display.max_rows',None) #显示所有行
pd.set_option('display.max_columns',None) #显示所有列
pd.set_option('display.width',1000) #设置列宽度1000

rootdir = 'C:\work\cl\sls201906'
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
info = pd.DataFrame(columns=['账户记录长度','信息类别','金融机构代码','业务种类','业务种类细分','业务号','发生地点','开户日期','到期日期','币种','授信额度','共享授信额度','最大负债额','担保方式','还款频率','还款月数','剩余还款月数','结算应还款日','最近一次实际还款日期','本月应还款金额','本月实际还款金额','余额','当前逾期期数','当前逾期总额','逾期31-60天未归还本金','逾期61-90天未归还本金','逾期91-1800天未归还本金','逾期180天以上未归还本金','累计逾期期数','最高逾期期数','五级分类','账户状态','24个月还款状态','透支180天以上未付余额','账户拥有者信息提示','姓名','证件类型','证件号码'])



for i in range(0,len(list)):
    path = os.path.join(rootdir,list[i])
    if os.path.isfile(path):
        #print(pd.read_excel(path,usecols='A:AZ'))
        info = info.append(pd.read_excel(path,usecols='A:AL'),sort=False,ignore_index=True)


info.reset_index()
info_daikuan = info[info['业务种类']=='贷款']
info_do = info_daikuan.sort_values(by=['业务号','最近一次实际还款日期'],inplace=False,ascending=True)
info_do.drop_duplicates(subset=['业务号'], keep='last', inplace=True)
info_do['最后一个月还款状态'] = info_do['24个月还款状态'].str[-1:]
info_weijieqing = info_do[info_do['最后一个月还款状态']!='C'].copy()

print(info_do['业务种类细分'].groupby(info_do['业务种类细分']).count())
print('-----------------------------------------------------------------------------')
print(info_do['余额'].groupby(info_do['业务种类细分']).sum())
print('-----------------------------------------------------------------------------')

print('新开立业务数：',info_weijieqing[info_weijieqing['结算应还款日'].astype('str').str[:6] == info_weijieqing['开户日期'].astype('str').str[:6]]['业务号'].count())
print('结算业务数：',info_do[info_do['最后一个月还款状态']!='C']['业务号'].count()-info_weijieqing[info_weijieqing['结算应还款日'].astype('str').str[:6] == info_weijieqing['开户日期'].astype('str').str[:6]]['业务号'].count())#除了新开立和结清的业务数
print('结清业务数',info_do[info_do['最后一个月还款状态']=='C']['业务号'].count())
print('-----------------------------------------------------------------------------')
info_weijieqing.drop_duplicates(subset=['证件类型','证件号码'], keep='last', inplace=True)
print('未结清的客户数：',info_weijieqing['证件类型'].count())
print('未结清的业务数：',info_do[info_do['最后一个月还款状态']!='C']['业务号'].count())
print('未结清的业务余额：',info_do[info_do['最后一个月还款状态']!='C']['余额'].sum())
print('贷款总数（含结清和未结清）:',info_do['业务号'].count())
